home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1998 / MacHack 1998.toast / The Hacks! / COSEmulator / COSEmulator- SRC / src / BogusPhotoshop.cpp < prev    next >
Encoding:
Text File  |  1998-06-21  |  14.0 KB  |  468 lines  |  [TEXT/CWIE]

  1. //===================================================================
  2. //=======================  Headers        =============================
  3.  
  4. #include "BogusPhotoshop.h"
  5. #include "WindowManager.h"
  6. #include "Screen.h"
  7. #include "ApplicationEvents.h"
  8. #include "ApplicationHandler.h"
  9. #include "MenuBar.h"
  10.  
  11. //===================================================================
  12. //=======================  Globals        =============================
  13.  
  14. //===================================================================
  15. //=======================  #define        =============================
  16.  
  17.  
  18. //===================================================================
  19. //=======================  Function Prototypes    =====================
  20.  
  21.  
  22. /*----------------------------------------------------------------------------\
  23.  
  24.     BogusPhotoshop :: Constructor
  25.  
  26. \----------------------------------------------------------------------------*/
  27.     BogusPhotoshop :: BogusPhotoshop( void )
  28.                     : Application()
  29. {
  30.     whichApp = 1;
  31.     newWind = false;
  32. }
  33.  
  34. /*----------------------------------------------------------------------------\
  35.  
  36.     BogusPhotoshop :: Init
  37.  
  38. \----------------------------------------------------------------------------*/
  39. Boolean    BogusPhotoshop :: Init( void )
  40. {
  41.     Boolean    allGood;
  42.     
  43.     allGood = ToolBar.SetUp( 133 , 59 , 370 , 4 , 22 );
  44.  
  45.     if( allGood )
  46.         allGood = Navigator.SetUp( 136 , 208 , 125 , 812 , 22 );
  47.  
  48.     if( allGood )
  49.         allGood = Color.SetUp( 134 , 208 , 125 , 812 , 149 );
  50.  
  51.     if( allGood )
  52.         allGood = Actions.SetUp( 135 , 208 , 125 , 812 , 276 );
  53.  
  54.     if( allGood )
  55.         allGood = LayerWindow.SetUp( 137 , 208 , 364 , 812 , 403 );
  56.  
  57.     if( allGood )
  58.     {
  59.         splash = new FloatWindow;
  60.         splash->SetUp( 139 , 501 , 362 , 262 , 203 );
  61.         finishSplash = TickCount() + 60;
  62.         
  63.         AddFrontWindow( splash );
  64.     }
  65.     
  66.     if( allGood )
  67.     {
  68.         SetUpMenuItems();
  69.     } 
  70.         
  71.     return allGood;
  72. }
  73.  
  74. /*----------------------------------------------------------------------------\
  75.  
  76.     BogusPhotoshop :: HandleEvent
  77.  
  78. \----------------------------------------------------------------------------*/
  79. void    BogusPhotoshop :: HandleEvent( ushort event , void *data )
  80. {
  81.     switch( event )
  82.     {
  83.     case kAEMakeFrontAppEvent:
  84.         ChangeActive( true );
  85.     break;
  86.     
  87.     case kAEGoBackGroundEvent:
  88.         ChangeActive( false );
  89.     break;
  90.     
  91.     case kAEActivateEvent:
  92.         
  93.     break;
  94.     
  95.     case kAEDeactivateEvent:
  96.         
  97.     break;
  98.     
  99.     case kAEHideEvent:
  100.         
  101.     break;
  102.  
  103.     case kAEMenuSelect:
  104.         HandleMenuSelect( ((AEMenuWhere *)data)->which , ((AEMenuWhere *)data)->num );
  105.     break;
  106.     
  107.     case kAEProgramSpec:
  108.         if( NewWindow )
  109.         {
  110.             RemoveFrontWindow( NewWindow );
  111.             NewWindow = false;
  112.             
  113.             dc = new DifferenceCloud;
  114.             dc->Init();
  115.             dc->AddToUpdate();
  116.             AddNormalWindow( dc );
  117.         }
  118.     break;
  119.     }
  120. }
  121.  
  122. /*----------------------------------------------------------------------------\
  123.  
  124.     BogusPhotoshop :: HandleMouseClick
  125.  
  126. \----------------------------------------------------------------------------*/
  127. Boolean    BogusPhotoshop :: HandleMouseClick( Boolean down, point where )
  128. {
  129.     return WMHandleMouseClick( down , where );
  130. }
  131.  
  132. /*----------------------------------------------------------------------------\
  133.  
  134.     BogusPhotoshop :: HandleMouseMove
  135.  
  136. \----------------------------------------------------------------------------*/
  137. void    BogusPhotoshop :: HandleMouseMove( point where )
  138. {
  139.     WMHandleMouseMove( where );
  140. }
  141.  
  142. /*----------------------------------------------------------------------------\
  143.  
  144.     BogusPhotoshop :: CleanUp
  145.  
  146. \----------------------------------------------------------------------------*/
  147. void    BogusPhotoshop :: CleanUp( rect *where )
  148. {
  149. // now clean up the windows
  150.     DrawWindows( where );
  151. }
  152.  
  153. /*----------------------------------------------------------------------------\
  154.  
  155.     BogusPhotoshop :: Maintance
  156.  
  157. \----------------------------------------------------------------------------*/
  158. void    BogusPhotoshop :: Maintance( void )
  159. {
  160.     if( finishSplash != 0 && finishSplash < TickCount() )
  161.     {
  162.         RemoveFrontWindow( splash );
  163.         finishSplash = 0;
  164.         
  165.         AddFrontWindow( &ToolBar );
  166.         AddFrontWindow( &Navigator );
  167.         AddFrontWindow( &Color );
  168.         AddFrontWindow( &Actions );
  169.         AddFrontWindow( &LayerWindow );        
  170.         
  171.         //ugly...
  172.                 menuBar.AddMenuToList( &FileMenu );
  173.                 menuBar.AddMenuToList( &EditMenu );
  174.                 menuBar.AddMenuToList( &ImageMenu );
  175.                 menuBar.AddMenuToList( &LayerMenu );
  176.                 menuBar.AddMenuToList( &SelectMenu ); 
  177.                 menuBar.AddMenuToList( &FilterMenu );
  178.                 menuBar.AddMenuToList( &ViewMenu ); 
  179.                 menuBar.AddMenuToList( &WindowMenu );
  180.     }
  181.     
  182.     if( dcTime != 0 && dcTime < TickCount() )
  183.     {
  184.         dc->DoJunk();
  185.         dcTime = 0;
  186.     }
  187.     
  188.     WMMaintance();
  189. }
  190.  
  191. /*----------------------------------------------------------------------------\
  192.  
  193.     BogusPhotoshop :: ChangeActive
  194.  
  195. \----------------------------------------------------------------------------*/
  196. void    BogusPhotoshop :: ChangeActive( Boolean act )
  197. {
  198.     if( act != active )
  199.     {
  200.         active = act;
  201.         
  202.         if( active )
  203.         {
  204.             if( finishSplash == 0 )
  205.             {
  206.                 InitSpecialMenus();
  207.                 menuBar.AddMenuToList( &FileMenu );
  208.                 menuBar.AddMenuToList( &EditMenu );
  209.                 menuBar.AddMenuToList( &ImageMenu );
  210.                 menuBar.AddMenuToList( &LayerMenu );
  211.                 menuBar.AddMenuToList( &SelectMenu ); 
  212.                 menuBar.AddMenuToList( &FilterMenu );
  213.                 menuBar.AddMenuToList( &ViewMenu ); 
  214.                 menuBar.AddMenuToList( &WindowMenu ); 
  215.             }
  216.             else
  217.                 InitSpecialMenus();
  218.             
  219.             WMGoBackGround( false );
  220.         }
  221.         else
  222.         {
  223.             WMGoBackGround( true );
  224.         }
  225.     }
  226. }
  227.  
  228. /*----------------------------------------------------------------------------\
  229.  
  230.     BogusPhotoshop :: SetUpMenuItems
  231.  
  232. \----------------------------------------------------------------------------*/
  233. void    BogusPhotoshop :: SetUpMenuItems( void )
  234. {
  235.     AddMenuWindow( &appleMenu );
  236.     AddMenuWindow( &AppSwitchMenu );
  237.     
  238.     FileMenu.SetWhichMenu( kFileMenuTitle );
  239.     FileMenu.SetMaxItems( 23 );
  240.     FileMenu.AddItem( 0 , "New..." , true );
  241.     FileMenu.AddItem( 1 , "Open..." , true );
  242.     FileMenu.AddItem( 2 , NULL , false );
  243.     FileMenu.AddItem( 3 , "Close" , false );
  244.     FileMenu.AddItem( 4 , "Save" , false );
  245.     FileMenu.AddItem( 5 , "Save As..." , true );
  246.     FileMenu.AddItem( 6 , "Save a Copy..." , true );
  247.     FileMenu.AddItem( 7 , "Revert" , false );
  248.     FileMenu.AddItem( 8 , NULL , false );
  249.     FileMenu.AddItem( 9 , "Place..." , true );
  250.     FileMenu.AddItem( 10 , NULL , false );
  251.     FileMenu.AddItem( 11 , "Import" , true );
  252.     FileMenu.AddItem( 12 , "Export" , true );
  253.     FileMenu.AddItem( 13 , NULL , false );
  254.     FileMenu.AddItem( 14 , "File Info..." , true );
  255.     FileMenu.AddItem( 15 , NULL , false );
  256.     FileMenu.AddItem( 16 , "Page Setup..." , true );
  257.     FileMenu.AddItem( 17 , "Print..." , true );
  258.     FileMenu.AddItem( 18 , NULL , false );
  259.     FileMenu.AddItem( 19 , "Preferences" , true );
  260.     FileMenu.AddItem( 20 , "Color Settings" , true );
  261.     FileMenu.AddItem( 21 , NULL , false );
  262.     FileMenu.AddItem( 22 , "Quit" , true );
  263.     FileMenu.Init();
  264.     AddMenuWindow( &FileMenu );
  265.     
  266.     EditMenu.SetWhichMenu( kEditMenuTitle );
  267.     EditMenu.SetMaxItems( 20 );
  268.     EditMenu.AddItem( 0 , "Can't Undo" , false );
  269.     EditMenu.AddItem( 1 , NULL , false );
  270.     EditMenu.AddItem( 2 , "Cut" , false );
  271.     EditMenu.AddItem( 3 , "Copy" , false );
  272.     EditMenu.AddItem( 4 , "Copy Merged" , false );
  273.     EditMenu.AddItem( 5 , "Paste" , false );
  274.     EditMenu.AddItem( 6 , "Paste Into" , false );
  275.     EditMenu.AddItem( 7 , "Clear" , false );
  276.     EditMenu.AddItem( 8 , NULL , false );
  277.     EditMenu.AddItem( 9 , "Fill..." , true );
  278.     EditMenu.AddItem( 10 , "Stroke..." , false );
  279.     EditMenu.AddItem( 11 , NULL , false );
  280.     EditMenu.AddItem( 12 , "Create Publisher..." , true );
  281.     EditMenu.AddItem( 13 , "Publisher Options..." , false );
  282.     EditMenu.AddItem( 14 , NULL , false );
  283.     EditMenu.AddItem( 15 , "Define Pattern" , false );
  284.     EditMenu.AddItem( 16 , "Take Snapshot" , true );
  285.     EditMenu.AddItem( 17 , "Take Merged Snapshot" , false );
  286.     EditMenu.AddItem( 18 , NULL , false );
  287.     EditMenu.AddItem( 19 , "Purge" , false );
  288.     EditMenu.Init();
  289.     AddMenuWindow( &EditMenu );
  290.  
  291.     ImageMenu.SetWhichMenu( kImageMenuTitle );
  292.     ImageMenu.SetMaxItems( 17 );
  293.     ImageMenu.AddItem( 0 , "Mode" , true );
  294.     ImageMenu.AddItem( 1 , NULL , false );
  295.     ImageMenu.AddItem( 2 , "Adjust" , true );
  296.     ImageMenu.AddItem( 3 , NULL , false );
  297.     ImageMenu.AddItem( 4 , "Duplicate..." , true );
  298.     ImageMenu.AddItem( 5 , "Apply Image..." , true );
  299.     ImageMenu.AddItem( 6 , "Calculations..." , true );
  300.     ImageMenu.AddItem( 7 , NULL , false );
  301.     ImageMenu.AddItem( 8 , "Image Size..." , true );
  302.     ImageMenu.AddItem( 9 , "Canvas Size..." , true );
  303.     ImageMenu.AddItem( 10 , "Crop" , false );
  304.     ImageMenu.AddItem( 11 , NULL , false );
  305.     ImageMenu.AddItem( 12 , "Rotate Canvas" , true );
  306.     ImageMenu.AddItem( 13 , NULL , false );
  307.     ImageMenu.AddItem( 14 , "Histogram..." , true );
  308.     ImageMenu.AddItem( 15 , NULL , false );
  309.     ImageMenu.AddItem( 16 , "Trap..." , false );
  310.     ImageMenu.Init();
  311.     AddMenuWindow( &ImageMenu );
  312.  
  313.     LayerMenu.SetWhichMenu( kLayerMenuTitle );
  314.     LayerMenu.SetMaxItems( 22 );
  315.     LayerMenu.AddItem( 0 , "New" , true );
  316.     LayerMenu.AddItem( 1 , "Duplicate Layer..." , true );
  317.     LayerMenu.AddItem( 2 , "Delete Layer" , false );
  318.     LayerMenu.AddItem( 3 , NULL , false );
  319.     LayerMenu.AddItem( 4 , "Layer Options..." , false );
  320.     LayerMenu.AddItem( 5 , "Adjustment Options..." , false );
  321.     LayerMenu.AddItem( 6 , NULL , false );
  322.     LayerMenu.AddItem( 7 , "Add Layer Mask" , false );
  323.     LayerMenu.AddItem( 8 , "Enable Layer Mask" , false );
  324.     LayerMenu.AddItem( 9 , NULL , false );
  325.     LayerMenu.AddItem( 10 , "Group With Previous" , false );
  326.     LayerMenu.AddItem( 11 , "Ungroup" , false );
  327.     LayerMenu.AddItem( 12 , NULL , false );
  328.     LayerMenu.AddItem( 13 , "Free Transform" , false );
  329.     LayerMenu.AddItem( 14 , "Transform" , false );
  330.     LayerMenu.AddItem( 15 , "Arrange" , false );
  331.     LayerMenu.AddItem( 16 , NULL , false );
  332.     LayerMenu.AddItem( 17 , "Merge Layers" , false );
  333.     LayerMenu.AddItem( 18 , "Merge Visible" , false );
  334.     LayerMenu.AddItem( 19 , "Flatten Image" , false );
  335.     LayerMenu.AddItem( 20 , NULL , false );
  336.     LayerMenu.AddItem( 21 , "Matting..." , false );
  337.     LayerMenu.Init();
  338.     AddMenuWindow( &LayerMenu );
  339.     
  340.     SelectMenu.SetWhichMenu( kSelectMenuTitle );
  341.     SelectMenu.SetMaxItems( 14 );
  342.     SelectMenu.AddItem( 0 , "All" , true );
  343.     SelectMenu.AddItem( 1 , "None" , false );
  344.     SelectMenu.AddItem( 2 , "Inverse" , false );
  345.     SelectMenu.AddItem( 3 , NULL , false );
  346.     SelectMenu.AddItem( 4 , "Color Range..." , true );
  347.     SelectMenu.AddItem( 5 , NULL , false );
  348.     SelectMenu.AddItem( 6 , "Feather..." , false );
  349.     SelectMenu.AddItem( 7 , "Modify" , false );
  350.     SelectMenu.AddItem( 8 , NULL , false );
  351.     SelectMenu.AddItem( 9 , "Grow" , false );
  352.     SelectMenu.AddItem( 10 , "Similar" , false );
  353.     SelectMenu.AddItem( 11 , NULL , false );
  354.     SelectMenu.AddItem( 12 , "Load Selection..." , false );
  355.     SelectMenu.AddItem( 13 , "Save Selection..." , false );
  356.     SelectMenu.Init();
  357.     AddMenuWindow( &SelectMenu );
  358.     
  359.     FilterMenu.SetWhichMenu( kFilterMenuTitle );
  360.     FilterMenu.SetMaxItems( 18 );
  361.     FilterMenu.AddItem( 0 , "Last Filter" , false );
  362.     FilterMenu.AddItem( 1 , "Fade..." , false );
  363.     FilterMenu.AddItem( 2 , NULL , false );
  364.     FilterMenu.AddItem( 3 , "Artistic" , true );
  365.     FilterMenu.AddItem( 4 , "Blur" , true );
  366.     FilterMenu.AddItem( 5 , "Brush Strokes" , true );
  367.     FilterMenu.AddItem( 6 , "Distort" , true );
  368.     FilterMenu.AddItem( 7 , "Noise" , true );
  369.     FilterMenu.AddItem( 8 , "Pixelate" , true );
  370.     FilterMenu.AddItem( 9 , "Render" , true );
  371.     FilterMenu.AddItem( 10 , "Sharpen" , true );
  372.     FilterMenu.AddItem( 11 , "Sketch" , true );
  373.     FilterMenu.AddItem( 12 , "Stylize" , true );
  374.     FilterMenu.AddItem( 13 , "Texture" , true );
  375.     FilterMenu.AddItem( 14 , "Video" , true );
  376.     FilterMenu.AddItem( 15 , "Other" , true );
  377.     FilterMenu.AddItem( 16 , NULL , false );
  378.     FilterMenu.AddItem( 17 , "Digimarc" , true );
  379.     FilterMenu.Init();
  380.     AddMenuWindow( &FilterMenu );
  381.     
  382.     ViewMenu.SetWhichMenu( kViewMenuTitle );
  383.     ViewMenu.SetMaxItems( 23 );
  384.     ViewMenu.AddItem( 0 , "New View" , true );
  385.     ViewMenu.AddItem( 1 , NULL , false );
  386.     ViewMenu.AddItem( 2 , "CMYK Preview" , true );
  387.     ViewMenu.AddItem( 3 , "Gamut Warning" , true );
  388.     ViewMenu.AddItem( 4 , NULL , false );
  389.     ViewMenu.AddItem( 5 , "Zoom In" , true );
  390.     ViewMenu.AddItem( 6 , "Zoom Out" , true );
  391.     ViewMenu.AddItem( 7 , "Fit To Screen" , true );
  392.     ViewMenu.AddItem( 8 , "Actual Pixels" , true );
  393.     ViewMenu.AddItem( 9 , "Print Size" , true );
  394.     ViewMenu.AddItem( 10 , NULL , false );
  395.     ViewMenu.AddItem( 11 , "Hide Edges" , false );
  396.     ViewMenu.AddItem( 12 , "Hide Path" , false );
  397.     ViewMenu.AddItem( 13 , NULL , false );
  398.     ViewMenu.AddItem( 14 , "Show Rulers" , true );
  399.     ViewMenu.AddItem( 15 , NULL , false );
  400.     ViewMenu.AddItem( 16 , "Hide Guides" , true );
  401.     ViewMenu.AddItem( 17 , "Snap To Guides" , true );
  402.     ViewMenu.AddItem( 18 , "Lock Guides" , true );
  403.     ViewMenu.AddItem( 19 , "Clear Guides" , false );
  404.     ViewMenu.AddItem( 20 , NULL , false );
  405.     ViewMenu.AddItem( 21 , "Show Grid" , true );
  406.     ViewMenu.AddItem( 22 , "Snap To Grid" , false );
  407.     ViewMenu.Init();
  408.     AddMenuWindow( &ViewMenu );
  409.  
  410.     WindowMenu.SetWhichMenu( kWindowMenuTitle );
  411.     WindowMenu.SetMaxItems( 17 );
  412.     WindowMenu.AddItem( 0 , "Hide Tools" , true );
  413.     WindowMenu.AddItem( 1 , NULL , true );
  414.     WindowMenu.AddItem( 2 , "Show Navigator" , true );
  415.     WindowMenu.AddItem( 3 , "Hide Info" , true );
  416.     WindowMenu.AddItem( 4 , "Show Options" , true );
  417.     WindowMenu.AddItem( 5 , NULL , true );
  418.     WindowMenu.AddItem( 6 , "Hide Color" , true );
  419.     WindowMenu.AddItem( 7 , "Show Swatches" , true );
  420.     WindowMenu.AddItem( 8 , "Show Brushes" , true );
  421.     WindowMenu.AddItem( 9 , NULL , true );
  422.     WindowMenu.AddItem( 10 , "Hide Layers" , true );
  423.     WindowMenu.AddItem( 11 , "Show Channels" , true );
  424.     WindowMenu.AddItem( 12 , "Show Paths" , true );
  425.     WindowMenu.AddItem( 13 , NULL, true );
  426.     WindowMenu.AddItem( 14 , "Hide Actions" , true );
  427.     WindowMenu.AddItem( 15 , NULL , true );
  428.     WindowMenu.AddItem( 16 , "Untitled-1 @ 100% (RGB)" , true );
  429.     WindowMenu.Init();
  430.     AddMenuWindow( &WindowMenu );
  431. }
  432.  
  433. /*----------------------------------------------------------------------------\
  434.  
  435.     BogusPhotoshop :: HandleMenuSelect
  436.  
  437. \----------------------------------------------------------------------------*/
  438. void    BogusPhotoshop :: HandleMenuSelect( uchar which , uchar num )
  439. {
  440.     switch( which )
  441.     {
  442.     case kFileMenuTitle:
  443.         if( num == 0 )
  444.         {
  445.             newWind = true;
  446.             NewWindow = new NewWindowWindow;
  447.             NewWindow->Init();
  448.             NewWindow->AddToUpdate();
  449.             AddFrontWindow( NewWindow );
  450.         }
  451.     break;
  452.     
  453.     case kEditMenuTitle:
  454.         
  455.     break;
  456.     
  457.     case kViewMenuTitle:
  458.         
  459.     break;
  460.     
  461.     case kFilterMenuTitle:
  462.         if( dc != NULL )
  463.         {
  464.             dcTime = TickCount() + 600;
  465.         }
  466.     break;
  467.     }
  468. }